<?php
class Almacene extends AppModel {

	var $name = 'Almacene';
	var $displayField = 'descripcion_corta';
	var $belongsTo = array(
            'CentroDist' => array(
                'className' => 'CentroDist',
                'foreignKey' => 'centro_dist_id'
            )
	);
	var $hasMany = array(
		'AlmacenesUsuario'=>array(
			'className'=>'AlmacenesUsuario',
			'foreignKey'=>'almacen_id'
		)
	);

	var $hasAndBelongsToMany = array(
		'Usuario' =>array(
			'className' => 'Usuario',
			'joinTable' => 'almacenes_usuarios',
			'foreignKey' => 'almacen_id',
			'associationForeignKey' => 'usuario_id'
		)
   );
	
	public function getAlmacenes($usuario_id){	
		//$this->Behaviors->attach('Containable');		
		$_almacen = $this->AlmacenesUsuario->find('list', array(
				'fields'=>array('almacen_id'),
				'conditions'=>array('usuario_id'=>$usuario_id),
				'recursive'=>-1));		
		
		if(!empty($_almacen)){
			$almacene = $this->find('list',
				array('fields'=>array('id','descripcion_corta'), 
					'conditions'=>array(
						'id'=>$_almacen,
						'activo'=>true,
						'centro_dist_id'=>$_SESSION['Usuario']['Tercero']['centro_dist_id']),				
				));
			return 	$almacene;
		} else {
			$almacene = $this->find('list',
				array('fields'=>array('id','descripcion_corta'), 
					'conditions'=>array(						
						'activo'=>true,
						'centro_dist_id'=>$_SESSION['Usuario']['Tercero']['centro_dist_id']),				
				));
			return $almacene;
			//return array('0'=>'NO ASIGNADO');
		}
	} 

	public function getAlmacenDespacho($usuario_id){	
		//$this->Behaviors->attach('Containable');		
		$_almacen = $this->AlmacenesUsuario->find('list', array(
				'fields'=>array('almacen_id'),
				'conditions'=>array('usuario_id'=>$usuario_id),
				'recursive'=>-1));		
		
		if(!empty($_almacen)){
			$almacene = $this->find('first',
				array('fields'=>array('id'), 
					'recursive'=>-1,
					'conditions'=>array(
						'id'=>$_almacen,
						'activo'=>true,
						'centro_dist_id'=>$_SESSION['Usuario']['Tercero']['centro_dist_id']),				
				));							
			return 	$almacene['Almacene']['id'];
		} else {
			$almacene = $this->find('first',
				array('fields'=>array('id'), 
					'recursive'=>-1,
					'conditions'=>array(						
						'activo'=>true,
						'centro_dist_id'=>$_SESSION['Usuario']['Tercero']['centro_dist_id']),				
				));
			return $almacene['Almacene']['id'];			
		}
		return false;
	}
		
	public function getAlmaceneIds($usuario_id){	
		//$this->Behaviors->attach('Containable');		
		$_almacen = $this->AlmacenesUsuario->find('list', array(
				'fields'=>array('almacen_id'),
				'conditions'=>array('usuario_id'=>$usuario_id),
				'recursive'=>-1));		
		
		if(!empty($_almacen)){
			$almacene = $this->find('list',
				array('fields'=>array('id'), 
					'conditions'=>array(
						'id'=>$_almacen,
						'activo'=>true,
						'centro_dist_id'=>$_SESSION['Usuario']['Tercero']['centro_dist_id']),				
				));							
			return 	$almacene;
		} else {
			$almacene = $this->find('list',
				array('fields'=>array('id'), 
					'conditions'=>array(						
						'activo'=>true,
						'centro_dist_id'=>$_SESSION['Usuario']['Tercero']['centro_dist_id']),				
				));
			return $almacene;
			//return array('0'=>'NO ASIGNADO');
		}
	}

        function getAlmacenesCentroDist($id){
            $almacenes = $this->find('list',array(
                'fields'=>array('id'),
                'conditions'=>array(
                    'centro_dist_id'=>$id,
                    'activo'=>true
                ),
                'recursive'=>-1
            ));
            return array_keys($almacenes);
        }
}
?>
